#include<stdlib.h>
#include<stdio.h>
#include<stdbool.h>
#include<string.h>


int tableau[100] = {0};
char *nom_commandes[100];

void ajouter_tache(int pid, char *nom)
{
    bool found = false;
    int i =0;
    while (found == false)
    {
        if (tableau[i]==0)
        {
            tableau[i]=pid;
            nom_commandes[i]=malloc((strlen(nom))*sizeof(char));
            strcpy(nom_commandes[i],nom);
            found = true;
        }
        i++;
    }
    if (found == false)
    {
        printf("erreur : il y a trop de taches\n");
    }
}

void supprimer_tache(int pid)
{
    bool deleted = false;
    int i =0;
    while (deleted == false && i < 100)
    {
        if (tableau[i]==pid)
        {
            tableau[i]=0;
            free(nom_commandes[i]);
            nom_commandes[i]=NULL;
            deleted = true;
        }
        i++;
    }
    if (deleted == false)
    {
        printf("erreur : la tache n'existe pas\n");
    }
}

void afficher_taches()
{
    int i;
    int compteur = 0;
    for (i=0; i<100; i++)
    {
        if (nom_commandes[i]!=NULL)
        {
            printf("[%d]+  En cours d'execution  %s",i,nom_commandes[i]);
            printf(" -- Pid %d\n",tableau[i]);
            compteur++;
        }
    }
    if (compteur==0)
    {
        printf("Il n'y aucunes taches en cours d'execution\n");
    }
}

void afficher_fin_tache(int pid)
{
    int i;
    int compteur = 0;
    for (i=0; i<100; i++)
    {
        if (tableau[i]==pid)
        {
            printf("[%d]+  Fini  %s",i,nom_commandes[i]);
            printf(" -- Pid %d\n",tableau[i]);
            compteur++;
            break;
        }

    }
    if (compteur==0)
    {
        printf("Il n'y aucunes taches en cours d'execution\n");
    }
}


